package com.tedu.oop.day5;
/**本类用于测试 多态
 *
 * 前提：继承+重写
 *
 *
 */
public class Test2_MoreType {
    public static void main(String[] args) {
        Animal a=new Animal();
        a.eat();
        //a.jump();//子类特有方法，父类无法使用
        Cat c=new Cat();
        c.eat();//重写父类eat()
        c.jump();
        /**
         * 创建多态对象
         * 1.父类引用指向子类对象
         * 2.编译看左，运行看右---花木兰替父从军
         * 3.统一调用标准，父类提供的功能才能用
         *              子类特有功能用不了
         * */
        Animal a2=new Cat();
        a2.eat();//eat()使用父类的声明，用的子类的实现方式
        Animal a3=new Dog();
        a3.eat();


    }

}
class Animal{

    public void eat(){
        System.out.println("吃任何东西");
    }
}

class Cat extends Animal{

    @Override
    public void eat(){
        System.out.println("吃小鱼干！");
    }
    public void jump(){
        System.out.println("跳的高！");
    }

}
class Dog extends Animal{
    @Override
    public void eat(){
        System.out.println("吃骨头！");
    }
    public void call(){
        System.out.println("汪汪叫!");
    }
}

